package com.continuing.beef.domain;

import java.math.BigDecimal;
import java.util.Date;

import com.continuing.common.core.domain.BaseEntity;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.continuing.common.annotation.Excel;
import org.apache.commons.lang3.builder.ToStringBuilder;
import org.apache.commons.lang3.builder.ToStringStyle;

/**
 * 账单信息对象 bill_info
 *
 * @author batata
 * @date 2021-09-26
 */
public class BillInfo extends BaseEntity {

    private static final long serialVersionUID = 1L;

    /**
     * 记录id
     */
    private Long id;

    /**
     * 金额
     */
    @Excel(name = "金额")
    private BigDecimal sum;

    /**
     * 优惠金额
     */
    @Excel(name = "优惠金额")
    private BigDecimal sumDiscount;

    /**
     * 付款金额
     */
    @Excel(name = "付款金额")
    private BigDecimal sumPayment;

    /**
     * 用户ID(客户)
     */
    @Excel(name = "用户ID(客户)")
    private Long userIdClient;

    /**
     * 用户昵称(客户)
     */
    @Excel(name = "用户昵称(客户)")
    private String userNickNameClient;

    /**
     * 创建者（添加此字段是为了防止今后有添加不是本人账单的情况）
     */
    @Excel(name = "创建者", readConverterExp = "添=加此字段是为了防止今后有添加不是本人账单的情况")
    private Long userIdCreate;

    /**
     * 更新者（用户id）
     */
    @Excel(name = "更新者", readConverterExp = "用=户id")
    private Long userIdUpdate;

    /**
     * 创建时间
     */
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    @Excel(name = "创建时间", width = 30, dateFormat = "yyyy-MM-dd HH:mm:ss")
    private Date timeCreate;

    /**
     * 更新时间
     */
    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "更新时间", width = 30, dateFormat = "yyyy-MM-dd HH:mm:ss")
    private Date timeUpdate;

    /**
     * 类型id
     */
    @Excel(name = "类型id")
    private String typeId;

    /**
     * 类型说明
     */
    @Excel(name = "类型说明")
    private String typeExplain;

    /**
     * 部门id
     */
    @Excel(name = "部门id")
    private Long deptIdBill;

    /**
     * 账单所属公司的部门id
     */
    @Excel(name = "账单所属公司的部门id")
    private Long deptIdFirmBill;

    /**
     * 删除标志（0代表存在 2代表删除）
     */
    private String delFlag;

    /**
     * 账单状态（0 未结清 1 已结清）
     */
    @Excel(name = "账单状态", readConverterExp = "0=未结清,1=已结清")
    private Integer statusBill;

    /**
     * 账单备注
     */
    @Excel(name = "账单备注")
    private String remarkBill;

    private String billTypeData;

    private Long clientUser;

    public String getBillTypeData() {
        return billTypeData;
    }

    public void setBillTypeData(String billTypeData) {
        this.billTypeData = billTypeData;
    }

    public Long getClientUser() {
        return clientUser;
    }

    public void setClientUser(Long clientUser) {
        this.clientUser = clientUser;
    }

    public void setId(Long id) {
        this.id = id;
    }

    public Long getId() {
        return id;
    }

    public void setSum(BigDecimal sum) {
        this.sum = sum;
    }

    public BigDecimal getSum() {
        return sum;
    }

    public void setSumDiscount(BigDecimal sumDiscount) {
        this.sumDiscount = sumDiscount;
    }

    public BigDecimal getSumDiscount() {
        return sumDiscount;
    }

    public void setSumPayment(BigDecimal sumPayment) {
        this.sumPayment = sumPayment;
    }

    public BigDecimal getSumPayment() {
        return sumPayment;
    }

    public void setUserIdClient(Long userIdClient) {
        this.userIdClient = userIdClient;
    }

    public Long getUserIdClient() {
        return userIdClient;
    }

    public void setUserNickNameClient(String userNickNameClient) {
        this.userNickNameClient = userNickNameClient;
    }

    public String getUserNickNameClient() {
        return userNickNameClient;
    }

    public void setUserIdCreate(Long userIdCreate) {
        this.userIdCreate = userIdCreate;
    }

    public Long getUserIdCreate() {
        return userIdCreate;
    }

    public void setUserIdUpdate(Long userIdUpdate) {
        this.userIdUpdate = userIdUpdate;
    }

    public Long getUserIdUpdate() {
        return userIdUpdate;
    }

    public void setTimeCreate(Date timeCreate) {
        this.timeCreate = timeCreate;
    }

    public Date getTimeCreate() {
        return timeCreate;
    }

    public void setTimeUpdate(Date timeUpdate) {
        this.timeUpdate = timeUpdate;
    }

    public Date getTimeUpdate() {
        return timeUpdate;
    }

    public void setTypeId(String typeId) {
        this.typeId = typeId;
    }

    public String getTypeId() {
        return typeId;
    }

    public void setTypeExplain(String typeExplain) {
        this.typeExplain = typeExplain;
    }

    public String getTypeExplain() {
        return typeExplain;
    }

    public void setDeptIdBill(Long deptIdBill) {
        this.deptIdBill = deptIdBill;
    }

    public Long getDeptIdBill() {
        return deptIdBill;
    }

    public void setDeptIdFirmBill(Long deptIdFirmBill) {
        this.deptIdFirmBill = deptIdFirmBill;
    }

    public Long getDeptIdFirmBill() {
        return deptIdFirmBill;
    }

    public void setDelFlag(String delFlag) {
        this.delFlag = delFlag;
    }

    public String getDelFlag() {
        return delFlag;
    }

    public void setStatusBill(Integer statusBill) {
        this.statusBill = statusBill;
    }

    public Integer getStatusBill() {
        return statusBill;
    }

    public void setRemarkBill(String remarkBill) {
        this.remarkBill = remarkBill;
    }

    public String getRemarkBill() {
        return remarkBill;
    }

    @Override
    public String toString() {
        return new ToStringBuilder(this, ToStringStyle.MULTI_LINE_STYLE)
                .append("id", getId())
                .append("sum", getSum())
                .append("sumDiscount", getSumDiscount())
                .append("sumPayment", getSumPayment())
                .append("userIdClient", getUserIdClient())
                .append("userNickNameClient", getUserNickNameClient())
                .append("userIdCreate", getUserIdCreate())
                .append("userIdUpdate", getUserIdUpdate())
                .append("timeCreate", getTimeCreate())
                .append("timeUpdate", getTimeUpdate())
                .append("typeId", getTypeId())
                .append("typeExplain", getTypeExplain())
                .append("deptIdBill", getDeptIdBill())
                .append("deptIdFirmBill", getDeptIdFirmBill())
                .append("delFlag", getDelFlag())
                .append("statusBill", getStatusBill())
                .append("remarkBill", getRemarkBill())
                .toString();
    }
}
